package com.roger.homecenterscreen.data.api

import retrofit2.Response
import retrofit2.http.GET
import retrofit2.http.Query

/**
 * 黄历农历API接口 - 使用聚合数据API
 * 官网：https://www.juhe.cn/
 */
interface CalendarApiService {
    
    /**
     * 获取黄历信息
     * @param date 日期，格式：2024-12-25 (根据官方文档，月份和日期小于10时取个位，如2012-1-1)
     * @param key API密钥
     */
    @GET("calendar/day")
    suspend fun getCalendarInfo(
        @Query("date") date: String,
        @Query("key") key: String
    ): Response<CalendarResponse>
}

// 聚合数据黄历API响应结构 (根据官方文档)
data class CalendarResponse(
    val error_code: Int,
    val reason: String,
    val result: CalendarResult?
)

data class CalendarResult(
    val data: CalendarData?
)

data class CalendarData(
    val date: String?,              // 具体日期
    val weekday: String?,           // 周几
    val animalsYear: String?,       // 属相
    val suit: String?,              // 宜
    val avoid: String?,             // 忌
    val lunar: String?,             // 农历
    val lunarYear: String?,         // 纪年
    val holiday: String?,           // 假日
    val desc: String?,              // 假日描述
    val `year-month`: String?       // 年份和月份
)

/**
 * 免费农历API - 使用免费的API接口
 */
interface LunarApiService {
    
    /**
     * 获取农历信息
     * @param date 日期，格式：2024-12-25
     */
    @GET("lunar")
    suspend fun getLunarInfo(
        @Query("date") date: String
    ): Response<LunarResponse>
}

data class LunarResponse(
    val code: Int,
    val msg: String,
    val data: LunarData
)

data class LunarData(
    val solar: String,        // 阳历
    val lunar: String,        // 农历
    val ganzhi: String,       // 干支
    val shengxiao: String,    // 生肖
    val star: String,         // 星座
    val yi: List<String>,     // 宜
    val ji: List<String>      // 忌
) 